package com.education.platform.common.dao;

import com.education.platform.common.dao.entity.BaseDo;

import java.util.List;

/**
 * @author tomato
 * @param <T>
 */
public interface BaseDao<T extends BaseDo> {
    /**
     * 插入
     * @param t
     * @return
     */
	int insert(T t);

    /**
     * 批量插入
     * @param list
     * @return
     */
	int insertInBatch(List<T> list);

    /**
     * 修改
     * @param t
     * @return
     */
	int updateById(T t);

    /**
     * 批量修改
     * @param list
     * @return
     */
	int updateInBatch(List<T> list);

    /**
     * 删除
     * @param t
     * @return
     */
	int deleteById(T t);


    /**
     * 批量删除
     * @param listIds
     * @return
     */
    int deleteByIds(List<Integer> listIds);

    /**
     * 条件查询集合
     * @param condition
     * @return
     */
	List<T> getList(T condition);

    /**
     * 条件查询单个对象
     * @param condition
     * @return
     */
	T get(T condition);


    /**
     * 主键查询单个
     * @param id
     * @return
     */
    T getById(Integer id);
    /**
     * 主键批量查询集合
     * @param idList
     * @return
     */
    List<T> getListByIds(List<Integer> idList);

}
